CORE
scene
创建场景
- new THREE.Scene()
constructor Scene(): THREE.Scene
向场景添加物体
- scene.add()
(method) Object3D<Object3DEventMap>.add(
...object: THREE.Object3D[]
): THREE.Scene
camera
创建相机
- new THREE.PerspectiveCamera()
constructor PerspectiveCamera(
fov?: number,
aspect?: number,
near?: number,
far?: number
): THREE.PerspectiveCamera
控制相机
- set()
(method) Vector3.set(
x: number,
y: number,
z: number
): THREE.Vector3
- camera.position
render
创建着色器
- new THREE.WebGLRenderer()
constructor WebGLRenderer(
parameters?: THREE.WebGLRendererParameters
): THREE.WebGLRenderer
设置渲染尺寸
- setSize()
(method) WebGLRenderer.setSize(
width: number,
height: number,
updateStyle?: boolean
): void
动画渲染
- 创建渲染动画:renderer.render()
(method) WebGLRenderer.render(
scene: THREE.Object3D,
camera: THREE.Camera
): void
- 设置动画循环:renderer.setAnimationLoop()
(method) WebGLRenderer.setAnimationLoop(
callback: XRFrameRequestCallback | null
): void
Object
Cube
创建物体几何
- new THREE.BoxGeometry()
constructor BoxGeometry(
width?: number,
height?: number,
depth?: number,
widthSegments?: number,
heightSegments?: number,
depthSegments?: number
): THREE.BoxGeometry
创建物体材质
- new THREE.MeshBasicMaterial()
constructor MeshBasicMaterial(
parameters?: THREE.MeshBasicMaterialParameters
): THREE.MeshBasicMaterial
创建物体网格
- new THREE.Mesh()
constructor Mesh<THREE.BoxGeometry, THREE.MeshBasicMaterial, THREE.Object3DEventMap>(
geometry?: THREE.BoxGeometry | undefined,
material?: THREE.MeshBasicMaterial | undefined
): THREE.Mesh<...>
控制物体
- cube.rotation
- cube.position
Line
创建直线几何
- 创建缓冲几何体对象:new THREE.BufferGeometry()
constructor BufferGeometry<THREE.NormalBufferAttributes>(): THREE.BufferGeometry<THREE.NormalBufferAttributes>
- 缓冲几何顶点数据:setFromPoints()
(method) BufferGeometry<NormalBufferAttributes>.setFromPoints(
points: THREE.Vector3[] | THREE.Vector2[]
): THREE.BufferGeometry<THREE.NormalBufferAttributes>
创建直线材质
- LineBasicMaterial()
constructor LineBasicMaterial(
parameters?: THREE.LineBasicMaterialParameters
): THREE.LineBasicMaterial
创建直线线段
- new THREE.Line()
constructor Line<THREE.BufferGeometry<THREE.NormalBufferAttributes>, THREE.LineBasicMaterial, THREE.Object3DEventMap>(
geometry?: THREE.BufferGeometry<THREE.NormalBufferAttributes> | undefined,
material?: THREE.LineBasicMaterial | undefined
): THREE.Line<...>
Light
环境光
- new THREE.AmbientLight()
constructor AmbientLight(
color?: THREE.ColorRepresentation,
intensity?: number
): THREE.AmbientLight
平行光
- new THREE.DirectionalLight()
constructor DirectionalLight(
color?: THREE.ColorRepresentation,
intensity?: number
): THREE.DirectionalLight
EXTENSION
Loader
导入对应模型加载器
import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';
创建加载器对象
- new GLTFLoader()
new GLTFLoader(
manager?: THREE.LoadingManager
): GLTFLoader
加载模型
- loader.load()
(method) Loader<GLTF, string>.load(
url: string,
onLoad: (data: GLTF) => void,
onProgress?: (event: ProgressEvent) => void,
onError?: (err: unknown) => void
): void
Control
OrbitControls
功能
- 允许用户通过鼠标和键盘来旋转、平移和缩放场景
创建轨道控制器
- new OrbitControls()
new OrbitControls(
object: THREE.Camera,
domElement?: HTMLElement | null //控制器要监听的元素,来捕获交互事件
): OrbitControls
控制轨道控制器属性
// 设置相机距离限制
controls.minDistance = 2; // 最近距离
controls.maxDistance = 10; // 最远距离
// 设置垂直旋转角度限制
controls.minPolarAngle = 0; // 最小仰角
controls.maxPolarAngle = Math.PI; // 最大仰角
// 启用或禁用缩放
controls.enableZoom = true;
// 启用或禁用旋转
controls.enableRotate = true;
// 启用或禁用平移
controls.enablePan = true;
// 设置阻尼效果(惯性)
controls.enableDamping = true;
controls.dampingFactor = 0.05;
//在使用阻尼效果时,需要在动画循环中更新控制器状态,否则阻尼不起效
controls.update();
PointerLockControls
TransformControls
DragControls
Plugins
Last updated on